Формат вызова программы: bsarc [-ключи] [-ключи] имя-архива [куда/] [файлы ...] Все ключи делятся на базовые (вид операции с архивом), и модификаторы (уточняющие). Ключи могут следовать как все в одной строке, так и по нес- колько команд в аргументе (т. е. -asr означает то же, что и -a -s -r). Латинские буквы в разных регистрах (верхнем или нижнем) считаются оди- наковыми. Латинские буквы в именах файлов в системе DOS приводятся к ниж- нему регистру и в таком виде хранятся в архиве. Прямой и обратный слэши ( / и \ ) в именах файлов равно-допустимы и переводятся в прямой слэш ( / ) для совместимости с операционными системами UNIX и QNX. В DOS имена файлов приводятся к строчным буквам, в других системах - остаются без изменений. Заметьте, что базовая команда может быть только од- на, а модификаторов любое количество. -a (append) - добавить файл в архив. ==================================== Пример: bsarc -a source *.c *.h Добавить в архив source (и создать его, если его не существует) все файлы из текущего каталога с расширениями *.c и *.h. Для этой и других комманд допускается использование метасимволов * и ? в именах файлов. Если имен файлов не указано, то берутся все файлы из теку- щего каталога. Программа следит (и не допускает этого) за тем, чтобы в ка- честве архивируемого файла не использовался сам архив. -x (eXtract) - извлечь файлы из архива. ======================================= Пример: bsarc -x source c/ *.c Извлечь из архива (не изменяя его!) все файлы с расширением *.c и от- править их в каталог c/ (об этом говорит завершающий слэш в аргументе c/ ). Если такого перенаправления вывода нет, то файлы извлекаются в текущий ка- талог. Если имен файлов не указано, то извлекаются все файлы из архива. По умолчанию, эта команда не извлекает из архива файлы, если в месте наз- начения уже есть файл с тем же именем и с более свежей датой (чтобы не ис- портить по ошибке более свежие файлы). Если Вы все таки хотите это сделать, Вы должны использовать модификатор -c, сообщающей программе, что это дела- ется умышленно. Если же в месте назначения уже существует файл с этим же именем и программа решила, что писать в него можно (например, с модификатором -c), то будет задан вопрос "Перезаписывать?". Модификатор -y позволяет Вам из- бежать всех вопросов от программы -- будет считаться, что на все вопросы дан утвердительный ответ. Конечно, это рискованная тактика. -m (move) - переместить файлы в архив. ====================================== Эта команда полностью аналогична команде -a (append) за исключением того, что в случае успеха архивируемые файлы уничтожаются. -u (update) - обновить файлы в архиве ===================================== Эта команда полностью аналогична команде -a (append) за исключением того, что в архив записываются только более свежие файлы (если файл с этим именем имеется в архиве, то сравниваются даты, и в архив помещается более новый файл). Если файла с таким именем нет в архиве, то он туда заносится. -f (freshen) - освежить файлы в архиве ====================================== Эта команда полностью аналогична команде -u (update) за исключением того, что если файла с таким именем нет в архиве, то он туда НЕ заносится. -d (delete) - удалить файлы из архива. ====================================== Эта команда удаляет перечисленные в командной строке файлы из архива. Если имен файлов нет, то НИЧЕГО НЕ делается. -p (Print) - вывести файлы на стандартный вывод. ================================================ Эта команда полностью аналогична команде -x за исключением того, что вывод файлов идет на терминал. -l (List) и -v (Verify list) - дать листинг архива. =================================================== На стандартный вывод выдается листинг архива (или специфицированных в командной строке файлов). Команда -v аналогична команде -lr (листинг с рас- печаткой полных имен файлов). -t (Test ) - проверить архивные файлы. ====================================== Эта команда полностью аналогична команде -x за исключением того, что выходные файлы не образуются (то есть только проверяется их целостность в архиве, так как по ним проверяется контрольная сумма) -s (Self Exe) - создать EXE-файл. ================================= После того, как Вы создали архив, вы можете сделать его саморазгружа- емым (то есть EXE-файл). За счет небольшой добавки в 2575 байт архив стано- вится независимым от наличия архиватора и от версии архиватора. Эта возможность полезна при распространении Ваших файлов, так как не требуется передавать вместе с архивом архиватор. Замечания о работе получающегося EXE-файла: 1) Можно разгрузить только ВСЕ файлы 2) При архивации с подкаталогами разархивация возможна только С ПОД- КАТАЛОГАМИ. 3) При существовании идентичного или более нового выходного файла ВСЕГДА задается вопрос о перезаписи его 4) Диагностика и сообщение об ошибках только НА АНГЛИЙСКОМ языке. -o (lOcate) - поиск файлов в архивах ==================================== При помощи этой команды Вы можете проверить наличие искомых файлов в одном или нескольких архивах, включая и подкаталоги. В отличии от команды '-l', где модификатор 'r' позволяет увидеть полные имена файлов в архиве, в команде '-o' модификатор действует на архивы (то есть для поиска архивов программа будет заходить во все подкаталоги). Пример: bsarc -or c:\* virt.cpp Искать во всех архивах на диске C: файлы с именем virt.cpp (Эта команда позволила автору обнаружить в своем хозяйстве на диске файл, давно считавшийся потерянным). -b### (Backup) - разбить архив на файлы фиксированного размера ### Кб =========================================================== При помощи этой команды Вы можете разбить большой архив на файлы мень- шего размера для переноски его на другую машину или для распространения Ва- ших продуктов. Команда в версиях 1.7-1.9 работает только для готового архива, при этом образуются файлы : *.bsa - главный архив *.b00 - 0-й диск *.b01 - 1-й диск ... Обратите внимание, что главный архив при этом усекается до искомого размера. Если архив был защищен от записи, то главный архив будет размещен ф файле bsqtmp2.$$$. Хотя размер файлов обычно в точности совпадает с искомым размером, НИКОГДА не пытайтесь разбить архив на файлы с помощью каких-либо других программ -- bsarc разбивает с учетом алгоритмов своей работы!!! Если вам надо слить все файлы в один, Вы можете это сделать с помощью команды DOS COPY: copy/b nnn.bsa+nnn.b00+nnn.b01+nnn.b02 (Обратите внимание на ключ /b - двоичное копирование) Для работы команды требуется свободное пространство, равное размеру архива. Пример: bsarc -b1180 myarc Разбить архив myarc на файлы размером 1180 килобайт (напоминаем, что один килобайт равен 1024 байта). До операции: MYARC.BSA 6552691 После операции: MYARC.BSA 1208320 MYARC.B00 1208320 MYARC.B01 1208320 MYARC.B02 1208320 MYARC.B03 1208320 MYARC.B04 511091 Замечания по образующимся архивам (для версий 1.7-1.9): 1) С ними возможны только команды проверки и разгрузки (-t и -x). Если файл с продолжением архива не находится на дискете или диске, задается вопрос: Следующий диск? [Y/N]. В это время Вы можете поставить дискету с нужным файлом. 2) Не допускается более 99 файлов продолжения архива. 3) Все файлы продолжения и главный архив обязаны иметь в точности сов- падающую дату и время. При архивации это обеспечивается. В следующих версиях со всеми разбитыми архивными файлами можно будет работать как с с обычными архивами. МОДИФИКАТОРЫ КОМАНД =================== -c ( Compare) - не сравнивать даты файлов -y ( Yes) - дать подтверждение на все действия ================================================== С этими модификаторами мы уже познакомились в команде -x -r ( Recursive) - с подкаталогами. ================================== Базовая операция проводится не только с текущим каталогом, а и со всеми его подкаталогами рекурсивно. Примеры: bsarc -ar disk_d d:\ В архив disk_d в текущем каталоге будут собраны все файлы с диска d:. bsarc -xr disk_d d:\ Из архива disk_d в текущем каталоге файлы будут помещены на диск d: с теми полными именами, с которыми они туда записывались. Подкаталоги будут создаваться автоматически. -h (Hidden) - включать системные и скрытые файлы. ================================================= По умолчанию в архив не записываются файлы с атрибутами System и HIdden. Этот модификатор позволит Вам включить такие файлы в архив. -g (Get password) - установить пароль для операций. =================================================== Если Вы архивировали файлы с установленным паролем, то извлечь файлы из архива Вам удастся только при повторной установке этого пароля. Вполне допускается иметь в одном архиве файлы с разными паролями. Хотя пароль в виде месива битов записывается в заголовок файла, его исправление там ничего Вам не даст, поскольку все операции над архивной информацией идут через это месиво (в лучшем случае Вы получите сообщение "Ошибка контрольной суммы файла"). -q (Quick compression) - применить быстрый алгоритм сжатия ========================================================== При применении этого модификатора, архиватор не применяет несколько дополнительных методов дожатия, за счет чего степень сжатия падает примерно на 1% а скорость увеличивается вдвое. При повторном применении этого моди- фикатора скорость увеличивается еще на 40% и степень сжатия уменьшается в среднем еще на 2%. Алгоритм восстановления при этом не изменяется. -+ (Maximal Compression) - обеспечить максимально возможное сжатие ================================================================== Архиватор применяет при своей работе несколько эвристических приемов для ускорения работы. При этом ключе эти эвристики не применяются, что поз- воляет добиться максимально возможного сжатия при данном алгоритме упаков- ки. При этом скорость работы может непредсказуемо упасть (до 5 раз). Про- цент сжатия при этом может измениться от 0% до 1%. Программа распространяется как SHAREWARE программный продукт, то есть сопровождается только для зарегистрованных пользователей. Зарегис- трированный пользователь получает также новые версии программы. Готовится вторая версия программы с развитым экранным сервисом и массой других воз- можностей: - поиск строк в архивах - переименование файлов в архивах - слияние архивов - сравнение файлов с архивными - восстановление сбойных архивов - много файловых возможностей - и главное: НОВЫЙ, БОЛЕЕ СИЛЬНЫЙ МЕТОД СЖАТИЯ и ХРАНЕНИЕ В АРХИВАХ НЕСКОЛЬКИХ ВЕРСИЙ ОДНОГО ФАЙЛА. Приятного пользования! С. Бабичев